package com.javacv.plus.extensions.batch;

import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.List;

/**
 * 批量处理结果
 */
@Data
@AllArgsConstructor
public class BatchResult<T> {
    
    /**
     * 成功处理的任务
     */
    private List<BatchTaskResult<T>> successResults;
    
    /**
     * 失败的任务
     */
    private List<BatchTaskResult<T>> failureResults;
    
    /**
     * 总处理时间（毫秒）
     */
    private long totalProcessingTime;
    
    /**
     * 获取总任务数
     */
    public int getTotalTasks() {
        return successResults.size() + failureResults.size();
    }
    
    /**
     * 获取成功率
     */
    public double getSuccessRate() {
        int total = getTotalTasks();
        return total == 0 ? 0.0 : (double) successResults.size() / total;
    }
    
    /**
     * 是否全部成功
     */
    public boolean isAllSuccess() {
        return failureResults.isEmpty() && !successResults.isEmpty();
    }
    
    /**
     * 获取平均处理时间
     */
    public double getAverageProcessingTime() {
        int total = getTotalTasks();
        return total == 0 ? 0.0 : (double) totalProcessingTime / total;
    }
} 